using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Collections.Generic;
using System.Collections;
using J2ME.RMS;
using Java.binario.bean;

namespace Java.binario.rms
{
    public class RMSGeneral : GestorRMS
    {

        private GeneralBean bean = new GeneralBean();
        


        public RMSGeneral():
        
            base("RMS_GENERAL"){
           
        }

        protected override Persistente createObjectBean()
        {
            return bean;
        }

        public void guardarLista(String codigoGrupo, List<Persistente> lista)
        {
            guardar(lista);
          
        }

        public void grabarGeneral(DataOutputStream data, List<GeneralBean> objectStack)
        {
            try
            {
                abrirRS();
             

                GeneralBean beanTemp;


                List<Persistente> lista = new List<Persistente>();
               
                String codigoGrupo = "0";

                //mientras haya datos en la pila
                for (int i = 0; i < objectStack.Count; i++)
                {

                    beanTemp = (GeneralBean)objectStack[i];

                    if (i == 0)
                    {
                        //i++;
                        codigoGrupo = beanTemp.grupo;
                    }
                    else
                    {
                        if (!codigoGrupo.Equals(beanTemp.grupo))
                        {
                            if (lista.Count > 0)
                            {
                                guardarLista(codigoGrupo, lista);
                                lista.Clear();
                                
                            }
                            codigoGrupo = beanTemp.grupo;
                        }
                    }
                    lista.Add(beanTemp);

                 
                }

                if ((lista.Count > 0))
                {
                    // System.out.println("lista.isEmpty()=" +lista.isEmpty() + "|codigoGrupo=" +codigoGrupo);
                    guardarLista(codigoGrupo, lista);
                    lista.Clear();
                     
                }

                lista = null;

                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////

                byte[] bytes = this.getDataByte();

                data.writeString(this.storeName);
                data.writeInt(bytes.Length);
                data.write(bytes);

                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////
               

            }
            finally
            {
                cerrarRS();

            }
        }
    }
    
    
}
